home *** CD-ROM | disk | FTP | other *** search
Java Source | 2000-08-18 | 2.4 KB | 114 lines |
- import java.applet.Applet;
- import java.awt.*;
- import java.awt.event.*;
-
- public class jshooting extends Applet implements KeyListener, Runnable {
- static final int WIDTH = 240, HEIGHT = 320; // 背景サイズ
- SpriteControl sc; // スプライトコントロール
- MediaTracker mt;
- boolean up=false, down=false, left=false, right=false;
- int mx=(WIDTH-32)/2, my=(HEIGHT-32)/2;
- Thread thread=null;
- public void init(){
- sc = new SpriteControl( 1, 1, WIDTH, HEIGHT, this );
- mt = new MediaTracker( this );
- Image image = getImage( getDocumentBase(), "img/back.gif" ); // 背景
- mt.addImage( image, 0 );
- sc.SetBGImage( image );
- image = getImage( getDocumentBase(), "img/myship.gif" ); // 自機
- mt.addImage( image, 0 );
- sc.Define( 0, image );
- sc.Set( 0, 0 );
- sc.Move( 0, mx, my );
- sc.Show();
- addKeyListener( this );
- }
- public void update( Graphics g ){
- paint( g );
- }
- public void paint( Graphics g ){
- if( mt.checkID( 0 ) ){
- sc.Display( g, this );
- } else {
- g.drawString( "Loading...", 0, 12 );
- }
- }
- public void keyPressed( KeyEvent e ){
- switch( e.getKeyCode() ){
- case KeyEvent.VK_UP:
- up = true;
- break;
- case KeyEvent.VK_DOWN:
- down = true;
- break;
- case KeyEvent.VK_LEFT:
- left = true;
- break;
- case KeyEvent.VK_RIGHT:
- right = true;
- break;
- }
- }
- public void keyReleased( KeyEvent e ){
- switch( e.getKeyCode() ){
- case KeyEvent.VK_UP:
- up = false;
- break;
- case KeyEvent.VK_DOWN:
- down = false;
- break;
- case KeyEvent.VK_LEFT:
- left = false;
- break;
- case KeyEvent.VK_RIGHT:
- right = false;
- break;
- }
- }
- public void keyTyped( KeyEvent e ){
- }
- public void start(){
- if( thread==null ){
- thread = new Thread( this );
- thread.start();
- }
- }
- public void stop(){
- if( thread!=null ){
- thread = null;
- }
- }
- public void run(){
- try {
- mt.waitForID( 0 );
- } catch( InterruptedException e ){
- return;
- }
- while( thread!=null ){
- try {
- Thread.sleep( 50 );
- } catch( InterruptedException e ){
- break;
- }
- if( up ){
- my -= 4;
- if( my<0 ) my = 0;
- }
- if( down ){
- my += 4;
- if( my>HEIGHT-32 ) my = HEIGHT-32;
- }
- if( left ){
- mx -= 4;
- if( mx<0 ) mx = 0;
- }
- if( right ){
- mx += 4;
- if( mx>WIDTH-32 ) mx = WIDTH-32;
- }
- sc.Move( 0, mx, my );
- repaint();
- }
- }
- }
-